package pe.com.bbva.ge.vista.vaadin.ui.component;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import pe.com.bbva.ge.domain.configuracion.Transportadora;
import pe.com.bbva.ge.negocio.ConfiguracionNegocio;

import com.cdainfo.vaadin.spring.Inject;
import com.vaadin.data.util.BeanItemContainer;

public class ComboBoxTransportadora extends ComboBoxGE {

	/**
	 * 
	 */
	private static final long serialVersionUID = -3521445669575665305L;
	
	@Autowired
	private ConfiguracionNegocio genericoNegocio;
	
	private BeanItemContainer<Transportadora> containerTipoSolicitud;
	
	public ComboBoxTransportadora() {
		super();
		String nombre = "Transportadora";
		setInputPrompt(nombre);
		setDescription(nombre);
		Inject.inject(this);
	}
	
	@Override
	public void postConstruccion() {
		//FIXME Esta Lista se reemplaza por una consulta a los servicios Generales.
		/*List<TipoSolicitud> tipoSolicitudes = new ArrayList<TipoSolicitud>();
		
		TipoSolicitud tipoSolicitud;
		
		tipoSolicitud = new TipoSolicitud();
		tipoSolicitud.setNombre("Pedido de efectivo de Bóveda");
		tipoSolicitudes.add(tipoSolicitud);
		
		tipoSolicitud = new TipoSolicitud();
		tipoSolicitud.setNombre("Envio de efectivo de Bóveda");
		tipoSolicitudes.add(tipoSolicitud);
		
		tipoSolicitud = new TipoSolicitud();
		tipoSolicitud.setNombre("Pedido de materiales");
		tipoSolicitudes.add(tipoSolicitud);
		
		tipoSolicitud = new TipoSolicitud();
		tipoSolicitud.setNombre("Traslado de efectivo entre transportadoras");
		tipoSolicitudes.add(tipoSolicitud);
		
		tipoSolicitud = new TipoSolicitud();
		tipoSolicitud.setNombre("Pedido de efectivo entre oficina");
		tipoSolicitudes.add(tipoSolicitud);
		
		tipoSolicitud = new TipoSolicitud();
		tipoSolicitud.setNombre("Compensación BBVA-Otros bancos");
		tipoSolicitudes.add(tipoSolicitud);
		
		tipoSolicitud = new TipoSolicitud();
		tipoSolicitud.setNombre("Compensación Otros bancos – BBVA");
		tipoSolicitudes.add(tipoSolicitud);
		
		tipoSolicitud = new TipoSolicitud();
		tipoSolicitud.setNombre("Retiro BCRP");
		tipoSolicitudes.add(tipoSolicitud);
		
		tipoSolicitud = new TipoSolicitud();
		tipoSolicitud.setNombre("Depósitos BCRP");
		tipoSolicitudes.add(tipoSolicitud);
		
		tipoSolicitud = new TipoSolicitud();
		tipoSolicitud.setNombre("Importación ME");
		tipoSolicitudes.add(tipoSolicitud);
		
		tipoSolicitud = new TipoSolicitud();
		tipoSolicitud.setNombre("Exportación ME");
		tipoSolicitudes.add(tipoSolicitud);
		
		tipoSolicitud = new TipoSolicitud();
		tipoSolicitud.setNombre("Servicio a Clientes – Recuento Remesas");
		tipoSolicitudes.add(tipoSolicitud);
		
		tipoSolicitud = new TipoSolicitud();
		tipoSolicitud.setNombre("Servicio de Clientes – Servicio Especial");
		tipoSolicitudes.add(tipoSolicitud);
		
		containerTipoSolicitud = new BeanItemContainer<TipoSolicitud>(TipoSolicitud.class,  tipoSolicitudes);
		setContainerDataSource(containerTipoSolicitud);
		setItemCaptionPropertyId("nombre");*/
		 
		List<Transportadora> listaTransportadoras = genericoNegocio.obtenerListaTransportadoras();
		containerTipoSolicitud = new BeanItemContainer<Transportadora>(Transportadora.class,  listaTransportadoras);
		
		setContainerDataSource(containerTipoSolicitud);
		setItemCaptionPropertyId("nombre");
		
	}
	
	public Transportadora obtenerTransportadora()
	{
		Object objeto = getValue();
		if(objeto != null)
		{
			return (Transportadora) objeto;
		}
		return null;
	}

}
